|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectde.bsvrz.dav.daf.main.impl.archive.request.StreamedArchiveRequester
public class StreamedArchiveRequester
Die Objekte dieser Klasse verwalten alle Arten von Anfragen an das Archivsystem, gleichzeitig werden auch alle Antworten vom Archivsystem, die für die
Applikation bestimmt sind, entgegen genommen und in entsprechende Objekte umgewandelt (der Datensatz wird von einem Objekt der Klasse StreamedRequestManager empfangen, aber an den richtigen StreamedArchiveRequester weitergeleitet). Für jede anfragende Applikation wird ein solches Objekt
erzeugt.
| Constructor Summary | |
|---|---|
StreamedArchiveRequester(ClientDavInterface archiveConnection,
int timeOutArchiveRequest,
SystemObject archiveSystem,
short defaultSimulationVariant)
Dieser Konstruktor erzeugt ein StreamedArchiveRequester Objekt und meldet sich gleichzeitig auf der übergebenen Verbindung als Sender für Anfragen an. |
|
| Method Summary | |
|---|---|
void |
addArchiveAvailabilityListener(ArchiveAvailabilityListener listener)
Das übergebene Objekt listener wird benachrichtigt sobald sich die Erreichbarkeit des Archivsystems
über den Datenverteiler ändert. |
ArchiveQueryResult |
archiveFileSaverAlignment(int volumeIdTypB)
Beauftragt das Archivsystem seine Informationen zu gespeicherten Daten mit einem Speichermedium Typ B ArchiveFileSaver abzugleichen. |
void |
dataReceiver(Data data)
Diese Methode analisiert die Daten und ruft die passenden Methoden auf, die die Daten weiter reichen oder verarbeiten um sie dann weiter zu reichen. |
ArchiveQueryResult |
deleteData(List<ArchiveInformationResult> dataDisposedToDelete,
boolean deleteImmediately)
Beauftragt das Archivsystem die angegebenen Zeitbereiche ohne Rücksicht auf den mit ArchiveRequestManager.increaseDeleteTime(java.util.List festgelegten Wert zu löschen. |
ArchiveQueryResult |
deleteDataSimulationVariant(short simulationVariant)
Diese Methode beauftragt das Archivsystem alle Daten, die zu einer bestimmten Simulationsvariante gehören, zu löschen. |
ArchiveQueryResult |
increaseDeleteTime(List<ArchiveInformationResult> requiredData,
long timePeriod)
Beauftragt das Archivsystem den Löschzeitpunkt der angegebenen Zeitbereiche zu verlängern. |
boolean |
isArchiveAvailable()
Stellt fest ob das Archivsystem über den Datenverteiler derzeit erreichbar ist. |
void |
removeArchiveAvailabilityListener(ArchiveAvailabilityListener listener)
Das Objekt, das mit ArchiveRequestManager.addArchiveAvailabilityListener(de.bsvrz.dav.daf.main.archive.ArchiveAvailabilityListener) übergeben wurde, wird nicht mehr benachrichtigt sobald
sich die Erreichbarkeit des Archivsystems über den Datenverteiler ändert. |
ArchiveDataQueryResult |
request(ArchiveQueryPriority priority,
ArchiveDataSpecification spec)
Diese Methode stellt eine Anfrage an das Archiv. |
ArchiveDataQueryResult |
request(ArchiveQueryPriority priority,
List<ArchiveDataSpecification> specs)
Diese Methode stellt eine Anfrage an das Archiv. |
ArchiveQueryResult |
requestData(Collection<ArchiveInformationResult> requiredData,
Collection<SystemObject> requestedArchives)
Beauftragt das Archivsystem fehlende Daten von anderen Archivsystemen anzufordern und diese dann als "nachgefordert" zu speichern und bei Archivanfragen zur Verfügung zu stellen. |
ArchiveQueryResult |
requestData(long startTime,
long endTime,
Collection<SystemObject> requestedArchives)
Beauftragt das Archivsystem fehlende Daten von anderen Archivsystemen anzufordern und diese dann als "nachgefordert" zu speichern und bei Archivanfragen zur Verfügung zu stellen. |
ArchiveInfoQueryResult |
requestInfo(ArchiveDataSpecification spec)
Start einer Archivinformationsanfrage an das Archivsystem. |
ArchiveInfoQueryResult |
requestInfo(List<ArchiveDataSpecification> specs)
Start einer Archivinformationsanfrage an das Archivsystem. |
ArchiveQueryResult |
restorePersistentData(List<ArchiveInformationResult> requiredData)
Diese Methode beauftragt das Archivsystem bestimmten Daten, die sich nicht im direkten Zugriff befinden, von der Sicherung wieder in den direkten Zugriff des Archivsystems zu bringen. |
ArchiveQueryResult |
savePersistentData()
Beauftragt das Archivsystem Archivdaten der Sicherung ArchiveFileSaver zu übergeben. |
void |
setReceiveBufferSize(int numberOfBytes)
Die Puffergröße (in Byte) des Empfängers auf einen anderen Wert als den default Wert setzen. |
void |
subscribeReceiver(DatasetReceiverInterface receiver,
SystemObject object,
DataDescription dataDescription,
ReceiveOptions options,
HistoryTypeParameter historyType,
long history)
Die Implementation dieser Methode meldet sich als Empfänger von aktuellen Daten an. |
void |
unsubscribeReceiver(DatasetReceiverInterface receiver,
SystemObject object,
DataDescription dataDescription)
Die Implementation dieser Methode meldet einen Empfänger ab, der mit der Methode ArchiveRequestManager.subscribeReceiver(de.bsvrz.dav.daf.main.archive.DatasetReceiverInterface, de.bsvrz.dav.daf.main.config.SystemObject, de.bsvrz.dav.daf.main.DataDescription, de.bsvrz.dav.daf.main.ReceiveOptions, de.bsvrz.dav.daf.main.archive.HistoryTypeParameter, long) angemeldet wurde. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
|---|
public StreamedArchiveRequester(ClientDavInterface archiveConnection,
int timeOutArchiveRequest,
SystemObject archiveSystem,
short defaultSimulationVariant)
archiveConnection - Eine Verbindung auf der Datensätze verschickt werden sollenarchiveSystem - Das Archiv, für das die Datensätze bestimmt sind| Method Detail |
|---|
public ArchiveDataQueryResult request(ArchiveQueryPriority priority,
List<ArchiveDataSpecification> specs)
throws IllegalStateException
request in interface ArchiveRequestManagerpriority - Mit welcher Priorität soll die Anfrage beantwortet werden (hohe, mittlere, niedrige Priorität)specs - Eine Liste von Objekten, die alle Informationen enthalten, die zur Bearbeitung der Archivanfrage nötig sind. Für jedes Objekt der Liste wird
ein Stream bereitgestellt, der die geforderten Informationen enthält.Wird eine leere Liste übergeben, wird das Objekt, das die Antwort auf
diese Anfrage enthält, ein Array mit Streams zurückgegbene, das ebenfalls leer ist.
specs leer, ist das Array, das die Streams
darstellt, ebenfalls leer.
IllegalStateException - Das Archiv, an das die Anfrage gestellt wurde, kann nicht erreicht werden, die Anfrage wird verworfen.
public ArchiveDataQueryResult request(ArchiveQueryPriority priority,
ArchiveDataSpecification spec)
throws IllegalStateException
request in interface ArchiveRequestManagerpriority - Mit welcher Priorität soll die Anfrage beantwortet werden (hohe, mittlere, niedrige Priorität)spec - Ein Objekt, das alle Informationen enthält, die zur Bearbeitung der Archivanfrage nötig sind.
IllegalStateException - Das Archiv, an das die Anfrage gestellt wurde, kann nicht erreicht werden, die Anfrage wird verworfen.public void setReceiveBufferSize(int numberOfBytes)
setReceiveBufferSize in interface ArchiveRequestManagernumberOfBytes - public void dataReceiver(Data data)
data - Datensatz eines Archivspublic ArchiveInfoQueryResult requestInfo(ArchiveDataSpecification spec)
requestInfo in interface ArchiveRequestManagerspec - Spezifikation der Archivdaten zu denen Information gewünscht werden.
public void subscribeReceiver(DatasetReceiverInterface receiver,
SystemObject object,
DataDescription dataDescription,
ReceiveOptions options,
HistoryTypeParameter historyType,
long history)
ArchiveRequestManager
subscribeReceiver in interface ArchiveRequestManagerreceiver - Objekt, das Methoden zur Verfügung stellt um den Strom aus historischen und aktuellen Daten
entgegen zu nehmenobject - System-Objekt für die die spezifizierten Daten anzumelden sinddataDescription - Beschreibende Informationen zu den anzumeldenden Datenoptions - Für die Anmeldung zu verwendende OptionenhistoryType - HistoryTypeParameter.TIME = Der Parameter history bezieht sich auf
einen Zeitraum, der vor den aktuellen Daten liegen soll (in ms);
HistoryTypeParameter.INDEX = Der Parameter history bezieht sich auf
die Anzahl Datensätze, die mindestens vor den aktuellen Daten liegen sollenhistory - Zeitraum der Archivdaten in Millisekunden, die vor den ersten aktuellen Datensätzen liegen
public void unsubscribeReceiver(DatasetReceiverInterface receiver,
SystemObject object,
DataDescription dataDescription)
ArchiveRequestManagerArchiveRequestManager.subscribeReceiver(de.bsvrz.dav.daf.main.archive.DatasetReceiverInterface, de.bsvrz.dav.daf.main.config.SystemObject, de.bsvrz.dav.daf.main.DataDescription, de.bsvrz.dav.daf.main.ReceiveOptions, de.bsvrz.dav.daf.main.archive.HistoryTypeParameter, long) angemeldet wurde.
unsubscribeReceiver in interface ArchiveRequestManagerobject - System-Objekt für die die spezifizierten Daten angemeldet wurdendataDescription - Beschreibende Informationen zu den angemeldeten Datenpublic ArchiveInfoQueryResult requestInfo(List<ArchiveDataSpecification> specs)
requestInfo in interface ArchiveRequestManagerspecs - Liste mit Spezifikationen der Archivdaten zu denen Information gewünscht werden
public ArchiveQueryResult savePersistentData()
ArchiveRequestManagerArchiveFileSaver zu übergeben.
Eine Applikation ruft diese Methode auf, um alle Archivdaten, die gesichert werden können, zu sichern. Eine
Implementierung dieser Methode sollte ohne zu blockieren ein Objekt zurückliefern über das asynchron auf das
Ergebnis der Anfrage zugegriffen werden kann.
savePersistentData in interface ArchiveRequestManager
public ArchiveQueryResult requestData(Collection<ArchiveInformationResult> requiredData,
Collection<SystemObject> requestedArchives)
ArchiveRequestManager
requestData in interface ArchiveRequestManagerrequiredData - Datenidentifikation(en), die nachgefordert werden sollen. Jede Datenidentifikation
speichert zusätlich den Zeitbereich, in dem Daten zu dieser Datenidentifikation angefordert
werden soll. Es muss mindestens eine Datenidentifikation vorhanden sein.requestedArchives - Archivsystem(e), bei denen Daten angefordert werden. Ist diese Liste leer werden alle
Archivsystem angefragt, die beim automatischen Nachfordern angefragt werden.
public ArchiveQueryResult requestData(long startTime,
long endTime,
Collection<SystemObject> requestedArchives)
ArchiveRequestManager
requestData in interface ArchiveRequestManagerstartTime - Startzeitpunkt, ab dem Daten nachgefordert werdenendTime - Endzeitpunkt, bis zu dem Daten nachgefordert werdenrequestedArchives - Archivsysteme die angefragt werden. Ist die Liste leer werden alle Archivsysteme angefragt,
die beim automatischen Nachfordern angefragt werden
public ArchiveQueryResult restorePersistentData(List<ArchiveInformationResult> requiredData)
restorePersistentData in interface ArchiveRequestManagerrequiredData - Zeitbereiche, die wieder in den direkten Zugriff des Archivsystems gebracht werden sollen
public ArchiveQueryResult deleteDataSimulationVariant(short simulationVariant)
deleteDataSimulationVariant in interface ArchiveRequestManagersimulationVariant - Simulationsvariante von der alle Daten aus dem Archivsystem entfernt werden sollen
public ArchiveQueryResult increaseDeleteTime(List<ArchiveInformationResult> requiredData,
long timePeriod)
ArchiveRequestManager
increaseDeleteTime in interface ArchiveRequestManagerrequiredData - Zeitbereiche, die länger im direkten Zugriff des Archivsystems bleiben sollentimePeriod - Zeitspanne, die die ausgewählten Daten länger im direkten Zugriff des Archivsystem bleiben
sollen (in ms)
public ArchiveQueryResult deleteData(List<ArchiveInformationResult> dataDisposedToDelete,
boolean deleteImmediately)
ArchiveRequestManagerArchiveRequestManager.increaseDeleteTime(java.util.List, long) festgelegten Wert zu löschen. Das Löschen der Zeitbereiche wird dabei in
zwei Varianten unterteilt. In der ersten Variante werden die Zeitbereiche umgehend aus dem direkten Zugriff des
Archivsystems entfernt. In der zweiten Variante werden die Zeitbereiche nur als "zu löschend" markiert, sobald das
"automatische Löschen" des Archivsystems angstoßen wird (dies geschieht zyklisch), werden die Zeitbereiche
entfernt.
Bei allen Löschoperationen, die durch diesen Methodenaufruf ausgelöst werden, muss darauf geachtete werden, dass der
Vorhaltezeitraum der Zeitbereiche abgelaufen sein muss und das die Zeitbereiche gesichert wurden, falls diese
gesichert werden sollten. Wird gegen eine diese Forderungen verstossen, wird der angegebene Zeitbereich nicht
gelöscht.
deleteData in interface ArchiveRequestManagerdataDisposedToDelete - Zeitbereich(e), die gelöscht werden sollendeleteImmediately - true = Variante 1, die Zeitbereiche werden umgehend aus dem direkten Zugriff des
Archivsystems entfernt; false = Variante 2, die Zeitbereiche werden nur als "zu
löschend" markiert und später aus dem direkten Zugriff des Archivsystems entfernt
public ArchiveQueryResult archiveFileSaverAlignment(int volumeIdTypB)
ArchiveRequestManagerArchiveFileSaver abzugleichen. Dies kann nötig werden, wenn die eindeutigen Identifizierungen
der Speichermedien von Typ B durch die Sicherung geändert wurden (Beispiel: Die Daten wurden vorher auf CD
gespeichert, nun werden die Daten auf DVD gespeichert und die alten Datenbestände auf DVD umkopiert, somit fallen
mehrere CD´s auf eine DVD und die eindeutigen Identifizierungen der CD´s sind nutzlos. Die eindeutigen
Identifizierungen der CD´s wurde aber vom Archivsystem gespeichert und müssen folglich abgeglichen werden).
archiveFileSaverAlignment in interface ArchiveRequestManagervolumeIdTypB - Eindeutige Identifikation eines Speichermediums Typ B
public boolean isArchiveAvailable()
ArchiveRequestManager
isArchiveAvailable in interface ArchiveRequestManagerpublic void addArchiveAvailabilityListener(ArchiveAvailabilityListener listener)
ArchiveRequestManagerlistener wird benachrichtigt sobald sich die Erreichbarkeit des Archivsystems
über den Datenverteiler ändert.
addArchiveAvailabilityListener in interface ArchiveRequestManagerlistener - Objekt, das benutzt wird um Änderungen der Erreichbarkeit des Archivsystems über den Datenverteiler
anzuzeigenpublic void removeArchiveAvailabilityListener(ArchiveAvailabilityListener listener)
ArchiveRequestManagerArchiveRequestManager.addArchiveAvailabilityListener(de.bsvrz.dav.daf.main.archive.ArchiveAvailabilityListener) übergeben wurde, wird nicht mehr benachrichtigt sobald
sich die Erreichbarkeit des Archivsystems über den Datenverteiler ändert.
removeArchiveAvailabilityListener in interface ArchiveRequestManagerlistener - Objekt, das nicht mehr benachrichtigt werden soll, wenn sich die Erreichbarkeit des Archivsystems
über den Datenverteiler ändert
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||